<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ModWatcherOverview.aspx.cs" Inherits="ModWatcher_ModWatcherOverview"
	Title="ModWatcher Overview - ModWatch" %>
<asp:Content ContentPlaceHolderID="Head" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderID="PageContent" runat="server">

	<h2>ModWatcher Overview</h2>

	<p>
		ModWatcher controls allow a developer to specify the form elements that
		the ModWatch framework should track to determine if any changes to the
		form have been made.
	</p>
	<p>
		The ModWatch framework provides a collection of ModWatcherExtender controls
		that provide the functionality to track all common form input elements.
		For cases in which custom change tracking functionality is required, a developer
		can either develop their own ModWatcher control or use the built-in CustomModWatcher
		control to define how the changes should be tracked.
	</p>
	<p>
		When a ModWatcher control is placed on a page, its initial value will be saved.
		If the user attempts to leave the page via a control with a
		<asp:HyperLink runat="server" NavigateUrl="~/ModAlert/ModAlertOverview.aspx">ModAlertExtender</asp:HyperLink>,
		then each ModWatcher will be queried to determine if a change has been made.  If
		a change has been made, then the user will be notified, and they will have the option
		to remain on the page.
	</p>
	<p>
		Each ModWatcher control will continue to track changes across both synchronous and asynchronous
		postbacks.  The ModWatcher controls also track changes for controls which are no longer
		visible on the page.  A result of these features is the need for the developer to notify
		the ModWatch framework if the user saves the form.
	</p>
	<p>
		Each page that uses the ModWatch framework must implement the IModWatchContainer interface,
		so it will contain a ModManager property.  The ModManager class exposes a SaveChanges method
		that allows a developer to notify the ModWatch framework that the current value of each
		ModWatcher control should be saved.
	</p>
	<p>
		For more information about the built-in ModWatcher controls, refer to an example of each
		control shown below.
	</p>
	<p>
		<asp:GridView ID="gvModWatcherControls" runat="server"
			GridLines="None" ShowHeader="false" AutoGenerateColumns="false">
			<Columns>
				<asp:HyperLinkField DataTextField="Title" DataNavigateUrlFields="Url" />
				<asp:TemplateField ItemStyle-Width="15px" ItemStyle-HorizontalAlign="center">
					<ItemTemplate>-</ItemTemplate>
				</asp:TemplateField>
				<asp:BoundField DataField="Description" />
			</Columns>
			<RowStyle VerticalAlign="top" />
		</asp:GridView>
	</p>

</asp:Content>
